﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="development_manual.aspx.cs" Inherits="Smy.Web.Admin.manual.development_manual" %>

<!DOCTYPE html >
<html>
<head>
<title>SmyWeb_V1.0模板制作教程</title>
<link href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<link href="./assets/css/docs.min.css" rel="stylesheet">
<link href="./assets/css/style.css" rel="stylesheet" type="text/css" />
<style>
body {
	font-family:"ff-tisa-web-pro-1", "ff-tisa-web-pro-2", "Lucida Grande", "Helvetica Neue", Helvetica, Arial, "Hiragino Sans GB", "Hiragino Sans GB W3", "WenQuanYi Micro Hei", "Microsoft YaHei", sans-serif;
}
h1, .h1, h2, .h2, h3, .h3, h4, .h4, .lead {
	font-family:"ff-tisa-web-pro-1", "ff-tisa-web-pro-2", "Lucida Grande", "Helvetica Neue", Helvetica, Arial, "Hiragino Sans GB", "Hiragino Sans GB W3", "Microsoft YaHei UI", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
}
pre code {
	background: transparent;
}
@media (min-width: 768px) {
 .bs-docs-home .bs-social,  .bs-docs-home .bs-masthead-links {
 margin-left: 0;
}
}
.green{color:green;}
</style>

<!--[if lt IE 9]><script src="assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="assets/js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
  <script src="assets/js/html5shiv.min.js"></script>
  <script src="assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<a class="sr-only" href="#content">Skip to main content</a>
<!-- Docs master nav -->
<header class="navbar navbar-inverse navbar-fixed-top bs-docs-nav" role="banner">
  <div class="container">
    <div class="navbar-header">
      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
      <a href="javascript:" class="navbar-brand"> SmyWeb_V1.0开发文档</a> </div>
    <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
      <ul class="nav navbar-nav">
        <li class="active"> <a href="javascript:">开发文档</a> </li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
        
      </ul>
    </nav>
  </div>
</header>
<!-- Callout for the old docs link -->
<div class="container bs-docs-container">
  <div class="row">
    <div class="col-md-9" role="main">
      <div class="bs-docs-section">
        <div class="page-header">
          <h1 id="label-syntax">一、标签语法</h1>
        </div>
        <h2 id="label-syntax-1">1.1 页面嵌入与模板路径</h2>
        <h3>1.1.1 页面嵌套标签</h3>
        <p>如果想在一个模板页面中嵌入另一个模板页的内容可使用该标签，注意避免被嵌套的页面嵌套主模板页，这样会造成迭代循环。另外，嵌套的深度最多只能5层。其中file所指定的路径为当前相对路径，如file="common/_header.htm&quot;</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--一般在当前模板下使用可下面的嵌套标签--&gt;
 &lt;!--#include virtual=&quot;模板页面相对路径&quot;--&gt;</code></pre>
        </div>
        <div class="highlight"></div>
        
        <h2 id="label-syntax-2">1.2 普通及数据变量</h2>
        <h3>1.2.1 普通变量标签</h3>
        <p>模板页的变量概念实际上就是C#的变量，在模板页调用时需加上大括号，这里往往和模板页的JS的方法体互相冲突，所以在写JS时，遇到大括号一定要换行。</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--直接变量--&gt;
&lt;%=varname %&gt;

&lt;!--实体变量，如：&lt;%=site.logo %&gt;--&gt;
&lt;%=var.item %&gt;</code></pre>
        </div>
        <h3>1.2.2 数据变量标签</h3>
        <p>数据变量一般在循环列表时使用到，另外在显示内容时也会用到</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--循环列表时的数据变量，如：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%=var[&quot;...&quot;]%&gt;

&lt;!--显示实体数据变量，如：&lt;%=model.fields[&quot;title&quot;]%&gt;--&gt;
&lt;%=model.fields[...]%&gt;</code></pre>
        </div>
        
        <h2 id="label-syntax-3">1.3 循环判断语句</h2>
        <h3>1.3.1 foreach循环标签        </h3>
<div class="bs-callout bs-callout-warning">
          <h4>参数说明：</h4>
          <p>type：数据类型，如DataRow</p>
          <p>item：数据类型的变量名，自定义变量名</p>
          <p>list：数组、结构、对象、引用类型</p>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--foreach循环标签--&gt;
&lt;%foreach(type item in list){%&gt;
  ...
&lt;%}%&gt;</code></pre>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--foreach循环标签示例--&gt;</code><br><code class="language-html">&lt;%DataTable&#32;solve&#32;=&#32;get_category_child_list("solve",&#32;0);<code class="language-html">%&gt;</code>
&lt;%foreach(DataRow dr in solve.Rows){%&gt;
&lt;li&gt;
	&lt;a href="&lt;%=linkurl("solve",dr[&quot;id&quot;])%&gt;"&gt;
   		 &lt;img src="&lt;%=dr[&quot;img_url&quot;]%&gt;" alt="&lt;%=dr[&quot;title&quot;]%&gt;" /&gt;
    	 &lt;span&gt;&lt;%=dr[&quot;title&quot;]%&gt;&lt;/span&gt;
  	&lt;/a&gt;
&lt;/li&gt;
&lt;%}%&gt;
</code></pre>
        </div>
        <h3>1.3.2 for循环标签</h3>
        <p>for标签和C#的语法也是一样的，一般很少用到。</p>
        <div class="bs-callout bs-callout-warning">
          <h4>参数说明：</h4>
          <p>i：整型变量</p>
          <p>count：整型变量</p>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--for循环标签--&gt;
&lt;%for(int i=0;i&lt;=count;i++){%&gt;
  ...
&lt;%}%&gt;</code></pre>
        </div>
        <h3>1.3.3 if判断语句标签</h3>
        <p>if判断语句与C#的语法一样，3.3.2支持二种写法，保留旧的写法</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--第一种格式写法(推荐)--&gt;
&lt;%if(...){%&gt;
  ...
&lt;% }elseif(...){%&gt;
  ...
&lt;%}%&gt;
</code></pre>
        </div>
        <h3>1.3.4 continue退出当前循环标签</h3>
        <p>循环标签中分支用以结束当前循环，直接进入下一次循环的标签，使用方式同传统程序一致。</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--continue标签--&gt;
&lt;%continue;%&gt;

&lt;!--使用示例，当i等于5时退回并进入下一条循环--&gt;
&lt;%for(int i=0;i&lt;=count;i++){%&gt;
  &lt;%if(i==5){%&gt;
    &lt;%continue;%&gt;
  &lt;%}%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        <h3>1.3.5 break结束循环标签</h3>
        <p>在循环标签中用以结束循环，进入后续程序的标签，使用方式同传统程序一致 。</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--break标签--&gt;
&lt;%break;%&gt;

&lt;!--使用示例，当i大于5时结束循环--&gt;
&lt;%for(int i=0;i&lt;=count;i++){%&gt;
  &lt;%if(i&gt;5){%&gt;
    &lt;%break;%&gt;
  &lt;%}%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h2 id="label-syntax-4">1.4 获取传参、截取字符串、格式转换标签</h2>
        <h3>1.4.1 获取GET传输参数标签</h3>
        <p>获取URL地址GET传输的参数值</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--request标签，varname为参数名--&gt;
&lt;%=request[&quot;varname&quot;]%&gt;</code></pre>
        </div>
        <h3>1.4.2 截取字符串长度标签</h3>
        <p>当一个字符串的长度大于你想要的值时可使用该标签</p>
        <div class="bs-callout bs-callout-warning">
          <h4>参数说明：</h4>
          <p>num：int类型，字符串长度 </p>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--Smy.cutstring标签，{...}为变量--&gt;
</code><br><code class="language-html">&lt;%=Smy.Common.Utils.</code>CutString(<code class="language-html">{...}</code>,num)%&gt;<code class="language-html">
</code></pre>
        </div>
        <h3>1.4.3 日期格式转换标签</h3>
        <p>把日期字符串转换成你想要的格式</p>
        <div class="bs-callout bs-callout-warning">
          <h4>参数说明：</h4>
          <p>strFormat：日期格式 </p>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--ToString标签，{...}为变量--&gt;
&lt;%={...}.ToString(&quot;格式&quot;)%&gt;

&lt;!--示例一：输出年月日格式的日期--&gt;
&lt;%={...}.ToString(&quot;yyyy年MM月dd日&quot;)%&gt;

&lt;!--示例二：输出年月日时分秒格式的日期--&gt;
&lt;%={...}.ToString(&quot;yyyy年MM月dd日HH时mm分ss秒&quot;)%&gt;</code></pre>
        </div>
        <h3>1.4.4 整型格式转换标签</h3>
        <p>当一个字符串的想转换成一个整型的数字时可使用该标签</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--StrToInt标签，{...}为字符串变量--&gt;
&lt;%=Smy.Common.Utils.StrToInt({...})%&gt;</code></pre>
        </div>
        <h3>1.4.5 直接输出内容标签</h3>
        <p>当一个方法返回的是字符串内容，而我们又想直接在模板页中直接输出可使用该标签。该标签支持两种写法，推荐用第一种。</p>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--第一种写法(推荐)--&gt;
&lt;%=方法名(参数一,参数二,...)%&gt;
</code></pre>
        </div>
        
        <h2 id="label-syntax-5">1.5 声明变量与赋值标签</h2>
        <p>和C#语法基本一致，需要声明或在需要接受一个方法返回的内容时可以使用该标签。</p>
        <div class="bs-callout bs-callout-warning">
          <h4>参数说明：</h4>
          <p>type：可选，变量的类型，如果有type则首先创建对象再赋值，否则直接赋值 </p>
          <p>ref：变量名，同一页面内不可重复</p>
          <p>expression：变量、常量或方法都可以</p>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--第一种写法(推荐)--&gt;
&lt;%[type] ref=expression;<strong></strong>%&gt;

&lt;!--示例一--&gt;
&lt;%int num=1;%&gt;
&lt;!--再次使用时不用再声明--&gt;
&lt;%num=2;%&gt;

&lt;!--示例二--&gt;
&lt;%DataTable dt=get_list(参数一,参数二,...)%&gt;</code></pre>
        </div>
	

      </div>
      <!-- 通用标签
  ================================================== -->
      <div class="bs-docs-section">
        <div class="page-header">
          <h1 id="label-generic">二、通用标签</h1>
        </div>
        <p class="lead">通用标签在所有模板文件都可以直接使用</p>
        <h2 class="green" id="label-generic-1">2.1 站点配置信息标签(变量)</h2>
        <p>以下标签均可以在模版文件内使用，可获取到对应于后台管理系统【“控制面板”--》"站点设置"--》"站点管理" 】对应站点的信息内容值</p>
        <div class="table-responsive">
          <table class="table table-bordered table-striped">
            <colgroup>
              <col class="col-xs-1">
              <col class="col-xs-2">
              <col class="col-xs-7">
            </colgroup>
            <thead>
              <tr>
                <th width="26%">标签</th>
                <th width="42%">描述</th>
                <th width="32%">示例</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td class="orange">站点信息</td>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <td>&lt;%=site.title %&gt;</td>
                <td>站点名称</td>
                <td>中文站点</td>
              </tr>
              <tr>
                <td>&lt;%=site.build_path %&gt;</td>
                <td>生成目录名</td>
                <td>build</td>
              </tr>
              <tr>
                <td>&lt;%=site.domain %&gt;</td>
                <td>绑定域名</td>
                <td>www.Smy.com</td>
              </tr>
              <tr>
                <td>&lt;%=site.is_default %&gt;</td>
                <td>是否默认</td>
                <td>1为默认，0为非默认</td>
              </tr>
              <tr>
                <td>&lt;%=site.sort_id %&gt;</td>
                <td>排序编号</td>
                <td>99</td>
              </tr>
              <tr>
                <td>&lt;%=site.name %&gt;</td>
                <td>网站名称</td>
                <td>某某网站</td>
              </tr>
              <tr>
                <td>&lt;%=site.logo %&gt;</td>
                <td>网站LOGO图片路径</td>
                <td>/upload/201408/24/2014082423542712.png</td>
              </tr>
              <tr>
                <td>&lt;%=site.company %&gt;</td>
                <td>公司名称</td>
                <td>XX软件有限公司</td>
              </tr>
              <tr>
                <td>&lt;%=site.address %&gt;</td>
                <td>通讯地址</td>
                <td>XX省XX市XX区XX号</td>
              </tr>
              <tr>
                <td>&lt;%=site.tel %&gt;</td>
                <td>联系电话</td>
                <td>020-87634691</td>
              </tr>
              <tr>
                <td>&lt;%=site.fax %&gt;</td>
                <td>传真号码</td>
                <td>020-87634691</td>
              </tr>
              <tr>
                <td>&lt;%=site.email %&gt;</td>
                <td>电子邮箱</td>
                <td>admin@abc.com</td>
              </tr>
              <tr>
                <td>&lt;%=site.qq %&gt;</td>
                <td>微信/QQ</td>
                <td>1534291591</td>
              </tr>
              <tr>
                <td>&lt;%=site.welcome %&gt;</td>
                <td>欢迎辞</td>
                <td>欢迎来到xxx有限公司官网！</td>
              </tr>
              <tr>
                <td>&lt;%=site.crod %&gt;</td>
                <td>网站备案号</td>
                <td>欢迎来到xxx有限公司官网！</td>
              </tr>
              <tr>
                <td>&lt;%=site.seo_title %&gt;</td>
                <td>首页标题(SEO)</td>
                <td>广州网站建设</td>
              </tr>
              <tr>
                <td>&lt;%=site.seo_keywords %&gt;</td>
                <td>页面关健词(SEO)</td>
                <td>广州网站建设</td>
              </tr>
              <tr>
                <td>&lt;%=site.seo_description %&gt;</td>
                <td>页面描述(SEO)</td>
                <td>广州网站建设</td>
              </tr>
              <tr>
                <td>&lt;%=site.copyright %&gt;</td>
                <td>底部版权信息【备注：支持HTML】</td>
                <td>版权所有 某某公司</td>
              </tr>
            </tbody>
          </table>
        </div>
        
        <h2 id="label-generic-2">2.2 全局通用标签(方法)</h2>
        <h3>2.2.1 统一链接标签</h3>       
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>key：URL配置的名称</p>
          <p>params：Object参数列表 (这里经常写数据的id)(eg：dr[&quot;id&quot;])</p>
        </div>
		<div class="bs-example">
          <blockquote>
            <code>linkurl(key,params)</code>
          </blockquote>
        </div>
        <div class="highlight">     
&lt;!--示例一：首页链接--&gt;
&lt;%=linkurl(&quot;index&quot;)%&gt;

&lt;!--示例二：关于我们链接--&gt;
&lt;%=linkurl(&quot;content&quot;,&quot;about&quot;)%&gt;</code></pre>
        </div>
        <h3>2.2.2 分页页码标签</h3>
        <p>输入分页页码按钮链接，需要和pagination.css一起使用。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>pagesize：每页显示条数</p>
          <p>pageindex：当前页码</p>
          <p>totalcount：总记录数</p>
          <p>key：URL配置的名称</p>
          <p>params： Object参数列表</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_page_link(pagesize, pageindex, totalcount, key, params)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">
&lt;!--示例一：列表分页，其中“__id__”为页码数字，系统自动替换--&gt;
&lt;%string pagelist=get_page_link(12,page,totalcount,&quot;news_list&quot;, category_id, &quot;__id__&quot;);%&gt;
&lt;!--放置页码列表，<em>class=&quot;flickr&quot;里面的样式可以修改成不同的23种风格</em>--&gt;
&lt;div class=&quot;flickr&quot;&gt;</code>&lt;%=pagelist&#32;%&gt;<code class="language-html">&lt;/div&gt;</code></pre>
        </div>
        <h3>2.2.3 调用插件列表标签</h3>        
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>assemblyName：命名空间全局限定名</p>
          <p>className：类名</p>
          <p>methodName：方法名称</p>
          <p>params：Object参数</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_plugin_method(assemblyName, className, methodName, params)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例一：输出留言插件列表的最新4条留言信息--&gt;
&lt;%DataTable flist=get_plugin_method(&quot;Smy.Web.Plugin.Feedback&quot;, &quot;feedback&quot;, &quot;get_feedback_list&quot;, 4, &quot;is_lock=0&quot;);%&gt;
&lt;!--使用foreach循环输出--&gt;
&lt;%foreach(DataRow dr in flist.Rows){%&gt;
  留言标题：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h2 id="label-generic-3">2.3内容调用标签(方法)</h2>        
        <div class="bs-callout bs-callout-warning">
          <h4>频道列表页已声明变量：</h4>
          <p>page(当前页码)、category_id(当前类别ID)、totalcount(数据的总记录)、pagelist(分页字符串)，可直接使用这些变量</p>
          <h4>频道详细页已声明变量：</h4>
          <p>id(当前信息ID)、call_index(调用别名)、model(当前信息Model实体类，可查阅数据字典)，可直接使用这些变量</p>
        </div>
        <h3>2.3.1 查询最新信息列表标签</h3>
        <p>可根据分类ID查询前几条最新信息列表，用循环语句输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>channel_name：频道名称(导航菜单英文名称)</p>
          <p>category_id：栏目分类ID</p>
          <p>top：显示的条数，0为显示所有</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_info_list(channel_name, category_id, top)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例一：显示新闻频道最新8条信息，新闻频道的名称为“news”--&gt;
&lt;%DataTable nlist=get_info_list(&quot;news&quot;, 0, 8);%&gt;
&lt;!--使用foreach循环输出--&gt;
&lt;%foreach(DataRow dr in nlist.Rows){%&gt;
  新闻标题：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.3.2 按分类查询最新信息列表标签</h3>
        <p>可根据分类ID与条件查询前几条最新信息列表，用循环语句输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>channel_name：频道名称(导航菜单英文名称)</p>
          <p>category_id：栏目分类ID</p>
          <p>top：显示的条数，0为显示所有</p>
          <p>strwhere：SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_info_list(channel_name, category_id, top, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例一：显示新闻频道分类ID为1的最新8条信息--&gt;
&lt;%DataTable nlist=get_info_list(&quot;news&quot;, 1, 8, &quot;status=0&quot;);%&gt;
&lt;!--使用foreach循环输出--&gt;
&lt;%foreach(DataRow dr in nlist.Rows){%&gt;
  新闻标题：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.3.3 查询并排序信息列表标签</h3>
        <p>可根据分类ID与条件查询前几条最新信息列表并进行排序，用循环语句输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>channel_name：频道名称(导航菜单英文名称)</p>
          <p>category_id：栏目分类ID，0显示所有分类</p>
          <p>top：显示的条数，0为显示所有</p>
          <p>strwhere：SQL查询语句</p>
          <p>orderby：SQL排序语句，asc顺序desc倒序</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_info_list(channel_name, category_id, top, strwhere, orderby)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例一：查询新闻频道分类ID为1的8条信息，按字段sort_id数字倒序排序--&gt;
&lt;%DataTable nlist=get_info_list(&quot;news&quot;, 1, 8, &quot;status=0&quot;, &quot;sort_id desc&quot;);%&gt;
&lt;!--使用foreach循环输出--&gt;
&lt;%foreach(DataRow dr in nlist.Rows){%&gt;
  新闻标题：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3 class="green">2.3.4 信息列表分页标签</h3>
        <p>此标签只允许在频道列表页中使用，分页需结合pagination.css。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p><b>channel_name</b>:频道调用名称(导航菜单英文名称)，string类型</p>
          <p><b>category_id</b>:栏目分类ID，0显示所有分类，int类型,此处直接写category_id的话，会直接读取当前列表的分类ID值</p>
          <p><b>page_size</b>:分页大小，int类型，此处直接写pagesize或者写你想每页显示的数量，该参数的值来自频道URL设置里分页设置的值</p>
          <p><b>page_index</b>:当前页码，int类型，此处直接写page，由程序自动读取值</p>
          <p><b>strwhere</b>:查询条件，可使用SQL语句进行查询，默认写""即可</p>
          <p><b>orderby</b>:排序，可使用SQL语句进行查询，默认写""即可</p>
          <p><b>totalcount</b>:数据总数，此处直接写 out totalcount，由程序自动读取值</p>
          <p><b>pagelist</b>:分页字符串变量，此处直接写 out pagelist，由程序自动读取值 </p>
          <p><b>_key</b>:URL配置时页面的调用名称，在页面调用名称、模版文件名称、生成文件名称都一样的情况下，此处参数值应和正在编辑模版文件的名称一致时，如正在编辑news_list.html文件时，此处值应为：“news_list”</p>
          <p><b>_params</b>:URL配置时对应的传输参数集合，如配置news_list页面调用名称时，添加了一个category_id变量则填写对应的category_id，添加了一个category_id变量和page变量就填写这2个变量对应的值;填写page参数的值时，"__id__"可表示当前页</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_info_list( channel_name, category_id, page_size, page_index, strwhere,orderby, out totalcount, out pagelist, _key, _params)</code>
              <br />
&nbsp;</blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html bash" >&lt;!--示例一：查询新闻频道分类ID为1的所有记录--&gt;
&lt;%DataTable nlist=get_info_list(&quot;news&quot;, 1, 10,page, &quot;status=0&quot;,"",out totalcount,out pagelist, &quot;news_list&quot;, category_id, &quot;__id__&quot;);%&gt;

&lt;!--使用foreach循环输出--&gt;
&lt;%foreach(DataRow dr in nlist.Rows){%&gt;
  新闻标题：&lt;%=dr[&quot;title&quot;]%&gt;</code>
              <code class="language-html bash" >&lt;%}%&gt;

                  
记录总数：&lt;%=totalcount %&gt;
页码：&lt;%=pagelist%&gt;
              </code>

          </pre>
        </div>
        
        <h3>2.3.5 根据调用别名取得内容标签</h3>
        <p>此标签适用于单页，在只需要显示该文单详细内容时使用。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>call_index：该条信息的调用别名，string类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_info_content(call_index)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例一：输出关于我们单页的内容--&gt;
&lt;%=get_info_content(&quot;about&quot;);%&gt;</code></pre>
        </div>
        
        <h3>2.3.6 根据信息的ID返回图片路径标签</h3>
        <p>此标签适用于只知道信息的ID情况下想得到该信息的图片路径。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>info_id：信息ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_info_img_url(info_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示信息ID为5的图片--&gt;
&lt;img src=&quot;&lt;%=get_info_img_url(5)%&gt;&quot; /&gt;</code></pre>
        </div>
        
        <h3>2.3.7 返回对应商品的会员价格标签</h3>
        <p>使用此标签时会判断当前用户是否登录，如尚未登录则返回-1。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>info_id：信息ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_info_price(info_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示商品信息ID为5的当前会员价格--&gt;
会员价格：&lt;%=get_user_info_price(5)%&gt;</code></pre>
        </div>
        <h3>2.3.8 返回当前频道首页的SEO设置</h3>
        <p>此标签适用于存在频道的名称情况下，才能使用此标签。如果频道SEO选项未设置，则使用默认SEO选项及首页的SEO设置。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>name：频道名称(导航菜单英文名称)，string类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_channel_seo(name)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：获取新闻首页的标题，关键词，页面描述--&gt;
SEO设置：&lt;%=get_channel_seo("news")%&gt;</code></pre>
        </div>
        <h2 id="label-generic-4">2.4 栏目调用标签(方法)</h2>
        <p>位于Smy.Web.UI/Method/CommonMethod.cs类里面的方法。</p>
        <h3>2.4.1 返回当前类别名称标签</h3>
        <p>一般用于频道列表页或者详细页，可根据类别ID查找类别的标题。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>category_id：栏目ID，int类型</p>
          <p>default_value：默认值，当该类别不存在时显示默认值，string类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_category_title(category_id, default_value)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：在信息详细页中显示当前信息的类别名称，model是实体--&gt;
当前类别：&lt;%=get_category_title(1, &quot;&quot;)%&gt;</code></pre>
        </div>
        
        <h3>2.4.2 返回类别一个实体类标签</h3>
        <p>此标签适用于只知道类别ID想查找该类别的其它信息时使用，返回类型为Smy.Model.InfoCategory。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>category_id：栏目ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_category_model(category_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查找类别ID为5的其它属性信息--&gt;
&lt;%Smy.Model.InfoCategory cmodel=get_category_model(5);%&gt;
&lt;%if(cmodel!=null){%&gt;
  类别名称：&lt;%=cmodel.title%&gt;
  类别SEO标题：&lt;%=cmodel.seo_title%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.4.3 返回类别面包屑导航标签</h3>
        <p>此标签适用于频道的列表页或详细页，根据当前的类别ID显示面包屑导航。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>url_Key：url配置的名称，string类型</p>
          <p>category_id：栏目ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_category_menu(url_key, category_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：根据当前URL配置名为news_list和类别ID变量为class_id输出面包屑导航--&gt;
&lt;%=get_category_menu(&quot;news_list&quot;, category_id)%&gt;</code></pre>
        </div>
        
        <h3>2.4.4 类别列表标签</h3>
        <p>显示该类别下所有的子类别，当父类别的ID为0时显示该频道所有类别，以循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>channel_name：当前频道的名称(导航菜单英文名称)，string类型</p>
          <p>parent_id：父类别的ID，0为所有类别，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_category_list(channel_name, parent_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例一：显示频道名称为news的所有类别--&gt;
&lt;%DataTable dt=get_category_list(&quot;news&quot;, 0)%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  类别名称：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%}%&gt;

&lt;!--示例二：显示频道名称为news，父类别ID为5的所有子类别--&gt;
&lt;%DataTable dt=get_category_list(&quot;news&quot;, 5);%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  类别名称：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.4.5 类别列表(只显示一级分类)标签</h3>
        <p>根据父ID查询子类别列表，注意只返回一层，不查找子类的子类，以循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>channel_name：当前频道的名称(导航菜单英文名称)，string类型</p>
          <p>parent_id：父类别的ID，0为顶级分类，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_category_child_list(channel_name, parent_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：根据当前的类别父ID为5，输出子类别下二层子分类--&gt;
&lt;%DataTable dt=get_category_child_list(&quot;news&quot;, 0);%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  类别名称：&lt;%=dr[&quot;title&quot;]%&gt;
  
&lt;%}%&gt;</code></pre>
        </div>
		
		
        <h3>2.4.6 类别列表(只显示一级分类)标签</h3>
        <p>根据父ID查询子类别列表，注意只返回一层，不查找子类的子类，以循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>channel_name：当前频道的名称(导航菜单英文名称)，string类型</p>
          <p>parent_id：父类别的ID，0为顶级分类，int类型</p>
          <p>is_red：是否推荐，0为不推荐，1为推荐，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_category_child_list(channel_name, parent_id,is_red)</code>
          </blockquote>
        </div>
		
		
        <h3>2.4.7 返回当前分类的SEO设置</h3>
        <p>此标签适用于存在分类的名称情况下，才能使用此标签</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>category_id：频道名称(导航菜单英文名称)，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_category_seo(category_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：获取某个分类的标题，关键词，页面描述--&gt;
SEO设置：&lt;%=get_category_seo("category_id")%&gt;</code></pre>
        </div>
        <h2 id="label-generic-5">2.5 评论调用标签(方法)</h2>
        <p>位于Smy.Web.UI/Method/CommonMethod.cs类里面的方法。</p>
        <h3>2.5.1 返回评论数据总数标签</h3>
        <p>根据当前信息的ID查询该信息的评论总数。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>info_id：当前信息ID，int类型</p>
          <p>strwhere：SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_comment_count(info_id, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：输出当前信息ID为5的评论总数--&gt;
评论总数：&lt;%=get_comment_count(5, &quot;is_lock=0&quot;)%&gt;</code></pre>
        </div>
        
        <h3>2.5.2 评论列表标签</h3>
        <p>根据条件显示前几条评论列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>info_id： 当前信息ID，int类型</p>
          <p>top：显示条数，为0时显示所有，int类型</p>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_comment_list(info_id, top, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：当前信息ID为5，输出前8条最新评论内容--&gt;
&lt;%DataTable dt=get_comment_list(5, 8, &quot;is_lock=0&quot;);%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  内容：&lt;%=dr[&quot;content&quot;]%&gt;
&lt;%}%&gt;
</code></pre>
        </div>
        
        <h3>2.5.3 评论分页列表标签</h3>
        <p>根据条件显示当前页的评论列表，用循环输出，一般情况下很少使用到该标签。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>info_id： 当前信息ID，int类型</p>
          <p>page_size：每页显示的记录数量，int类型</p>
          <p>page_index：当前的页码，int类型</p>
          <p>strwhere： SQL查询语句</p>
          <p>totalcount： 数据总记录数</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_comment_list(info_id, page_size, page_index, strwhere, out totalcount)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：当前信息ID为5，每页为10条记录，输出第一页评论列表--&gt;
&lt;%int totalcount=0%&gt;
&lt;%DataTable dt=get_comment_list(5, 10, 1, &quot;is_lock=0&quot;, out totalcount);%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  内容：&lt;%=dr[&quot;content&quot;]%&gt;
&lt;%}%&gt;
</code></pre>
        </div>
        
        <h2 id="label-generic-6">2.6 会员调用标签(方法)</h2>
        <p>位于Smy.Web.UI/Method/CommonMethod.cs类里面的方法。</p>
        <h3>2.6.1 第三方登录应用列表标签</h3>
        <p>适用于在会员登录模板页面列出所有的第三方登录方式应用列表供用户选择</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>top： 显示条数，0为显示所有，int类型</p>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_oauth_app_list(top, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示所有可用的第三方登录按钮--&gt;
&lt;%DataTable olist=get_oauth_app_list(0, &quot;&quot;);%&gt;
&lt;%foreach(DataRow dr in olist.Rows){%&gt;
  &lt;a title=&quot;&lt;%=site.title%&gt;&quot; href=&quot;&lt;%=site.webpath%&gt;api/oauth/&lt;%=dr[&quot;api_path&quot;]%&gt;/index.aspx&quot;&gt;
    &lt;img src=&quot;&lt;%=site.img_url%&gt;&quot; /&gt;
  &lt;/a&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.6.2 根据用户名显示头像路径标签</h3>
        <p>适用于在会员模板页面根据用户名显示头像。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>user_name： 用户名，string类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_avatar(user_name)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示用户名为test的头像--&gt;
&lt;img src=&quot;&lt;%=get_user_avatar(&quot;test&quot;)%&gt;&quot; /&gt;</code></pre>
        </div>
        
        <h3>2.6.3 统计短消息数量标签</h3>
        <p>根据SQL查询条件返回对应的短消息总记录数，相关字段说明请查阅Smy.Web.UI/Method/CommonMethod.cs类文件。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_message_count(strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示用户名为test的短消息记录总数--&gt;
未读短消息：&lt;%=get_user_message_count(&quot;type&lt;3 and is_read=0 and accept_user_name='test'&quot;)%&gt;条
已读短消息：&lt;%=get_user_message_count(&quot;type&lt;3 and is_read=1 and accept_user_name='test'&quot;)%&gt;条</code></pre>
        </div>
        
        <h3>2.6.4 短消息列表标签</h3>
        <p>根据SQL查询条件返回对应的短消息列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>top： 显示条数，0为显示所有，int类型</p>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_message_list(top, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示用户名为test的未读短消息列表--&gt;
&lt;%DataTable dt=get_user_message_list(0, &quot;type&lt;3 and is_read=0 and accept_user_name='test'&quot;);%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  短消息标题：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.6.5 短信息分页列表标签</h3>
        <p>根据SQL查询条件返回对应的短消息分页列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>page_size： 每页显示条数，int类型</p>
          <p>page_index： 当前页码，int类型</p>
          <p>strwhere： SQL查询语句</p>
          <p>totalcount： 记录总数，out参数，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_message_list(page_size, page_index, strwhere, out totalcount)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示用户名为test短消息收件箱列表--&gt;
&lt;!--取得一个DataTable，page为当前页码变量，totalcount为已声明的变量--&gt;
&lt;%DataTable dt=get_user_message_list(10, page, &quot;accept_user_name='test' and type=2&quot;, out totalcount);%&gt;
&lt;!--取得分页页码列表，action为变量，相关说明请查阅get_page_link分页标签--&gt;
&lt;%string pagelist=get_page_link(10, page, totalcount, &quot;usermessage&quot;, action, &quot;__id__&quot;);%&gt;
&lt;!--使用循环输出--&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  短消息标题：&lt;%=dr[&quot;title&quot;]%&gt;
&lt;%}%&gt;
记录总数：&lt;%=totalcount%&gt;
页码：&lt;%=pagelist%&gt;</code></pre>
        </div>
        
        <h3>2.6.6 积分明细分页列表标签</h3>
        <p>根据SQL查询条件返回对应的积分明细分页列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>page_size： 每页显示条数，int类型</p>
          <p>page_index： 当前页码，int类型</p>
          <p>strwhere： SQL查询语句</p>
          <p>totalcount： 记录总数，out参数，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_point_list(page_size, page_index, strwhere, out totalcount)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示用户名为test积分明细分页列表--&gt;
&lt;!--取得一个DataTable，page为当前页码变量，totalcount为已声明的变量--&gt;
&lt;%DataTable dt=get_user_point_list(10, page, &quot;user_name='test'&quot;, out totalcount)；%&gt;
&lt;!--取得分页页码列表，action为变量，相关说明请查阅get_page_link分页标签--&gt;
&lt;%string pagelist=get_page_link(10, page, totalcount, &quot;userpoint&quot;, action, &quot;__id__&quot;)；%&gt;
&lt;!--使用循环输出--&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  ...
&lt;%}%&gt;
记录总数：&lt;%=totalcount%&gt;
页码：&lt;%=pagelist%&gt;</code></pre>
        </div>
        
        <h3>2.6.7 余额明细分页列表标签</h3>
        <p>根据SQL查询条件返回对应的余额明细分页列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>page_size： 每页显示条数，int类型</p>
          <p>page_index： 当前页码，int类型</p>
          <p>strwhere： SQL查询语句</p>
          <p>totalcount： 记录总数，out参数，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_amount_list(page_size, page_index, strwhere, out totalcount)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示用户名为test余额明细分页列表--&gt;
&lt;!--取得一个DataTable，page为当前页码变量，totalcount为已声明的变量--&gt;
&lt;%DataTable dt=get_user_amount_list(10, page, &quot;user_name='test'&quot;, out totalcount)；%&gt;
&lt;!--取得分页页码列表，action为变量，相关说明请查阅get_page_link分页标签--&gt;
&lt;%string pagelist=get_page_link(10, page, totalcount, &quot;useramount&quot;, action, &quot;__id__&quot;)；%&gt;
&lt;!--使用循环输出--&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  ...
&lt;%}%&gt;
记录总数：&lt;%=totalcount %&gt;
页码：&lt;%=pagelist%&gt;</code></pre>
        </div>
        
        <h3>2.6.8 邀请码列表标签</h3>
        <p>根据SQL查询条件返回对应的邀请码列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>top： 显示条数，0为显示所有，int类型</p>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_invite_list(top, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示用户名为test的所有邀请码列表--&gt;
&lt;%DataTable dt=get_user_invite_list(0, &quot;user_name='test'&quot;)；%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  ...
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.6.9 邀请码的状态标签</h3>
        <p>根据邀请码字符串返回一个布尔值，True为可用，False为不可用。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>str_code： 需要验证的邀请码字符串，string类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_invite_status(str_code)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：验证邀请码字符串“ER98FE888”是否有效--&gt;
&lt;%bool status=get_invite_status(&quot;ER98FE888&quot;)%&gt;
&lt;%if(status==true){%&gt;
  该邀请码有效
&lt;%}else{%&gt;
  该邀请码已使用过或已过期
&lt;%}%&gt;</code></pre>
        </div>
        
        <h2 id="label-generic-7">2.7 订单调用标签(方法)</h2>
        <p>位于Smy.Web.UI/Method/CommonMethod.cs类里面的方法。</p>
        <h3>2.7.1 统计订单数量标签</h3>
        <p>根据查询条件统计订单总记录数。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_user_order_count(strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询用户名为test未完成的订单总数--&gt;
未完成订单：&lt;%=get_user_order_count(&quot;status&lt;3 and user_name='test'&quot;)%&gt;</code></pre>
        </div>
        
        <h3>2.7.2 订单列表标签</h3>
        <p>根据查询条件显示前几行订单列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>top： 显示条数，0为显示所有，int类型</p>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_order_list(top, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询用户名为test所有未完成的订单列表--&gt;
&lt;%DataTable dt=get_order_list(0, &quot;status&lt;3 and user_name='test'&quot;);%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  ...
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.7.3 订单分页列表标签</h3>
        <p>根据SQL查询条件返回对应的订单分页列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>page_size： 每页显示条数，int类型</p>
          <p>page_index： 当前页码，int类型</p>
          <p>strwhere： SQL查询语句</p>
          <p>totalcount： 记录总数，out参数，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_order_list(page_size, page_index, strwhere, out totalcount)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：显示用户名为test订单分页列表--&gt;
&lt;!--取得一个DataTable，page为当前页码变量，totalcount为已声明的变量--&gt;
&lt;%DataTable dt=get_order_list(10, page, &quot;user_name='test'&quot;, out totalcount);%&gt;
&lt;!--取得分页页码列表，action为变量，相关说明请查阅get_page_link分页标签--&gt;
&lt;%string pagelist=get_page_link(10, page, totalcount, &quot;userorder&quot;, action, &quot;__id__&quot;);%&gt;
&lt;!--使用循环输出--&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  ...
&lt;%}%&gt;
记录总数：&lt;%=totalcount %&gt;
页码：&lt;%=pagelist%&gt;</code></pre>
        </div>
        
        <h3>2.7.4 订单商品列表标签</h3>
        <p>根据订单的ID查找对应的商品列表，返回的是List&lt;Smy.Model.AllInfo&gt;实体对象</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>order_id： 订单ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_order_goods_list(order_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--查询订单ID为5的商品信息--&gt;
&lt;%List&lt;Smy.Model.AllInfo&gt; ls=get_order_goods_list(5);%&gt;
&lt;%foreach(Smy.Model.AllInfo modelt in ls){%&gt;
  ...
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.7.5 返回订单状态标签</h3>
        <p>根据订单ID查询当前订单处理状态描述，例如：待付款。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>order_id： 订单ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_order_status(order_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询订单ID为5的状态描述--&gt;
订单状态：&lt;%=get_order_status(5)%&gt;</code></pre>
        </div>
        
        <h3>2.7.6 返回订单是否需要在线支付标签</h3>
        <p>根据订单ID查询当前订单是否需要在线支付，返回布尔值，True代表需要在线支付，False代表不需要在线支付。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>order_id： 订单ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_order_payment_status(order_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询订单ID为5是否需要在线支付--&gt;
&lt;%bool status=get_order_payment_status(5);%&gt;
&lt;%if(status==true){%&gt;
  //显示在线支付按钮
&lt;%}%&gt;</code></pre>
        </div>
        
        <h2 id="label-generic-8">2.8 购物车调用标签(方法)</h2>
        <p>位于Smy.Web.UI/Method/CommonMethod.cs类里面的方法，如果你是一个程序员，随时可以根据自己的要求添加你自己的方法。</p>
        <h3>2.8.1 返回购物车商品总数标签</h3>
        <p>返回购物车商品总数。</p>
        <div class="bs-example">
          <blockquote>
            <code>get_cart_quantity()</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：输出当前购物车的商品总数--&gt;
购物车商品 &lt;%=get_cart_quantity()%&gt; 件</code></pre>
        </div>
        
        <h3>2.8.2 购物车商品列表标签</h3>
        <p>购物车的所有商品列表，返回的是一个实体IList&lt;Smy.Model.CartItems&gt;。</p>
        <div class="bs-example">
          <blockquote>
            <code>get_cart_list()</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：当前购物车的商品列表--&gt;
&lt;%List&lt;Smy.Model.CartItems&gt; iList=get_cart_list();%&gt;
&lt;%foreach(Smy.Model.CartItems modelt in iList){%&gt;
  ...
&lt;%}%&gt;</code></pre>
        </div>
        
        <h2 id="label-generic-9">2.9 配送方式调用标签(方法)</h2>
        <p>位于Smy.Web.UI/Method/CommonMethod.cs类里面的方法。</p>
        <h3>2.9.1 配送方式列表标签</h3>
        <p>根据查询条件显示前几行配送方式列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>top： 显示条数，0为显示所有，int类型</p>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_express_list(top, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询所有配送方式列表--&gt;
&lt;%DataTable dt=get_express_list(0, &quot;&quot;);%&gt;
&lt;%foreach(DataRow dr in dt.Rows);%&gt;
  ...
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.9.2 返回配送方式标题标签</h3>
        <p>根据配送方式的ID查询该配送方式的标题名称。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>express_id： 配送方式的ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_express_title(express_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询配送方式ID为5的标题名称--&gt;
配送方式：&lt;%=get_express_title(5)%&gt;</code></pre>
        </div>
        
        <h2 id="label-generic-10">2.10 支付方式调用标签(方法)</h2>
        <p>位于<span 
                style="color: rgb(51, 51, 51); font-family: ff-tisa-web-pro-1, ff-tisa-web-pro-2, 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans GB', 'Hiragino Sans GB W3', 'WenQuanYi Micro Hei', 'Microsoft YaHei', sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;">Smy.Web.UI/Method/CommonMethod.cs</span>类里面的方法。</p>
        <h3>2.10.1 支付方式列表标签</h3>
        <p>根据查询条件显示前几行支付方式列表，用循环输出。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>top： 显示条数，0为显示所有，int类型</p>
          <p>strwhere： SQL查询语句</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_payment_list(top, strwhere)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询所有配送方式列表--&gt;
&lt;%DataTable dt=get_payment_list(0, &quot;&quot;);%&gt;
&lt;%foreach(DataRow dr in dt.Rows){%&gt;
  ...
&lt;%}%&gt;</code></pre>
        </div>
        
        <h3>2.10.2 返回支付方式标题标签</h3>
        <p>根据支付方式的ID查询该支付方式的标题名称。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>payment_id： 支付方式的ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_payment_title(payment_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询支付方式ID为5的标题名称--&gt;
支付方式：&lt;%=get_payment_title(5)%&gt;</code></pre>
        </div>
        
        <h3>2.10.3 返回支付费用金额标签</h3>
        <p>根据支付方式的ID查询该支付方式的手续费用，返回一个decimal类型的货币格式。</p>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>payment_id： 支付方式的ID，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_payment_poundage_amount(payment_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html">&lt;!--示例：查询支付方式ID为5的支付手续费用--&gt;
支付手续费：&lt;%=get_payment_poundage_amount(5)%&gt;</code></pre>
        </div>
        
      </div>
      <!-- 内置页面标签
  ================================================== -->
      <div class="bs-docs-section">
        <div class="page-header">
          <h1 id="label-page">三、页面标签</h1>
        </div>
        <p class="lead">内置的页面标签，实际上是动态生成的aspx文件要继承的类，这些变量与方法只允许对应的模板页面使用。位于Smy.Web.UI项目的Page目录下，如果开发者需要增加一个页面可以在此目录中增加对应的继承类文件。</p>
        <h2 id="label-page-1">3.1 频道页面变量与方法</h2>
        <p>频道页面的内置变量与方法，只允许当前对应的频道模板页使用，其它模板页面无法使用。</p>
        <h3>3.1.1 频道列表页内置变量</h3>
        <p>所有频道列表页都继承此类，位于Smy.Web.UI/Page/info_list.cs文件类。</p>
        <div class="bs-example">
          
          <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>category_id：类别ID，int类型</p>
          <p>page： 当前信息的调用别名，string类型</p>
            <p>totalcount：数据总数，int类型</p>
            <p>pagelist：分页页码字符串，string类型</p>
        </div>
        </div>
        
        <h3>3.1.2 频道详细页变量与方法</h3>
        <p>所有频道详细页都继承此类，位于Smy.Web.UI/Page/info_show.cs文件类。</p>
        <h4>3.1.2.1 页面内置变量</h4>
        <div class="bs-example">
            <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>id： 当前信息ID，int类型</p>
          <p>page： 当前信息的调用别名，string类型</p>
                <p>model：信息实体类，Smy.Model.AllInfo类型
                </p>
        </div>
        
        </div>
        <h4>3.1.2.2 获取上一条下一条的A链接方法</h4>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>urlkey： URL配置名称，string类型</p>
          <p>type： -1代表上一条，1代表下一条</p>
          <p>defaultvalue： 默认文本</p>
          <p>callIndex： 是否使用别名做为链接，0使用ID，1使用别名</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_prevandnext_article(urlkey, type, defaultvalue, callIndex)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html html">&lt;!--示例一：当前URL配置名称为news_show，显示上一条信息链接--&gt;
上一条：&lt;%=get_prevandnext_article(&quot;news_show&quot;, -1, &quot;没有啦！&quot;, 0)%&gt;

&lt;!--示例二：当前URL配置名称为news_show，显示下一条信息链接--&gt;
下一条：&lt;%=get_prevandnext_article(&quot;news_show&quot;, 1, &quot;没有啦！&quot;, 0)%&gt;</code></pre>
        </div>
         <h4>3.1.2.3 获取SEO设置</h4>
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>info_id： 内容id，int类型</p>
        </div>
        <div class="bs-example">
          <blockquote>
            <code>get_info_seo(info_id)</code>
          </blockquote>
        </div>
        <div class="highlight">
          <pre><code class="language-html"></code><code class="language-html">&lt;%= get_info_seo(model.id)%&gt;</code></pre>
            <pre><code class="language-html"></code></pre>
        </div>
        <h2 id="label-page-2">3.2 类别页面变量与方法</h2>
        <p>所有频道类别列表页都继承此类，位于Smy.Web.UI/Method/CommonMethod.cs文件类。</p>
        <h3>3.2.1 类别列表页内置变量</h3>
        <div class="bs-example">
          
          <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
          <p>category_id： 0代表顶级分类，int类型</p>
        </div>
        </div>
        
        <h2 id="label-page-3">3.3 会员页面变量与方法</h2>
        <p>会员中心页面所继承的类，只允许对应的模板页访问。</p>
        <h3>3.3.1 会员中心页面内置变量</h3>
        <p>位于Smy.Web.UI/Page/usercenter.cs文件类。</p>
        <div class="bs-example">
        <div class="bs-callout bs-callout-info">
          <h4>参数说明：</h4>
            <p>category_id： 0代表顶级分类，int类型</p>
            <p>action：操作类型，string类型</p>
            <p>curr_login_ip：本次登录IP，string类型</p>
            <p>pre_login_ip：上一次登录IP，string类型</p>
            <p>pre_login_time：上一次登录时间，string类型</p>
            <p>total_order：未完成订单数量，string类型</p>
            <p>total_msg：未读短消息，int类型</p>
        </div>
        </div>
        
        <h3>3.3.2 会员金额记录页面内置变量</h3>
        <p>位于Smy.Web.UI/Page/useramount.cs文件类。</p>
        <div class="bs-example">
            <div class="bs-callout bs-callout-info">
            <h4>参数说明：</h4>
                <p>
                    action：操作类型，string类型</p>
                <p>
                    page 当前页码，int类型</p>
                <p>
                    totalcount 总记录数，int类型</p>
            </div>
        </div>
        
        <h3>3.3.3 会员积分记录页面内置变量</h3>
        <p>位于Smy.Web.UI/Page/userpoint.cs文件类。</p>
        <div class="bs-example">
          <div class="bs-callout bs-callout-info">
            <h4>参数说明：</h4>
                <p>
                    action：操作类型，string类型</p>
                <p>
                    page 当前页码，int类型</p>
                <p>
                    totalcount 总记录数，int类型</p>
            </div>
        </div>
        
        <h3>3.3.4 会员短消息列表页内置变量</h3>
        <p>位于Smy.Web.UI/Page/usermessage.cs文件类。</p>
        <div class="bs-example">
            <div class="bs-callout bs-callout-info">
            <h4>参数说明：</h4>
                <p>
                    action：操作类型，string类型</p>
                <p>
                    page 当前页码，int类型</p>
                <p>
                    totalcount 总记录数，int类型</p>
            </div>
        </div>
        
        <h3>3.3.5 会员短消息详细页内置变量</h3>
        <p>位于Smy.Web.UI/Page/usermessage_show.cs文件类。</p>
        <div class="bs-example">
        <div class="bs-callout bs-callout-info">
            <h4>参数说明：</h4>
                <p>id 当前短消息的ID，int类型</p>
                <p>model 当前短消息实体，Smy.Model.UserMessage类型</p>
            </div>
        </div>
        
        <h3>3.3.6 会员订单列表页内置变量</h3>
        <p>位于Smy.Web.UI/Page/userorder.cs文件类。</p>
        <div class="bs-example">
          <div class="bs-callout bs-callout-info">
            <h4>参数说明：</h4>
                <p>
                    action：操作类型，string类型</p>
                <p>
                    page 当前页码，int类型</p>
                <p>
                    totalcount 总记录数，int类型</p>
            </div>
        </div>
        
        <h3>3.3.7 会员订单详细页内置变量</h3>
        <p>位于Smy.Web.UI/Page/userorder_show.cs文件类。</p>
        <div class="bs-example">
        <div class="bs-callout bs-callout-info">
            <h4>参数说明：</h4>
                <p>
                    id：当前订单的ID，int类型</p>
                <p>
                    model： 当前订单实体，Smy.Model.Order类型</p>
                <p>
                    payModel 支付方式实体，Smy.Model.Payment类型</p>
            </div>
        </div>
        
        
        
      </div>
      
   
      <div class="bs-docs-section">
        <div class="page-header">
          <h1 id="ask-question">四、常规方法</h1>
        </div>
        
        <div class="bs-example">
          <p><strong>Q：</strong>制作模板时应该注意些什么？</p>
          <p><strong>A：</strong>首先需要注意该模板的保存文本格式为UTF-8；第二在模板页写Javascript代码时&lt;SCRIPT&gt;要改为小写&lt;script&gt;，遇到大括号{}时不要写成一行，一定要换行，否则模板引擎当成变量处理。</p>
        </div>
        
        
        
      </div>
      
    </div>
    <div class="col-md-3">
      <div class="bs-docs-sidebar hidden-print hidden-xs hidden-sm" role="complementary">
        <ul class="nav bs-docs-sidenav">
          <li> <a href="#label-syntax">一、模板标签语法</a>
            <ul class="nav">
              <li><a href="#label-syntax-1">1.1 嵌入/模板路径</a></li>
              <li><a href="#label-syntax-2">1.2 普通/数据变量</a></li>
              <li><a href="#label-syntax-3">1.3 循环判断语句</a></li>
              <li><a href="#label-syntax-4">1.4 获取/截取/格式转换</a></li>
              <li><a href="#label-syntax-5">1.5 声明赋值语句</a></li>
            </ul>
          </li>
          <li> <a href="#label-generic">二、内置通用标签</a>
            <ul class="nav">
              <li><a href="#label-generic-1">2.1站点配置标签(变量)</a></li>
              <li><a href="#label-generic-2">2.2 全局通用标签(方法)</a></li>
              <li><a href="#label-generic-3">2.3内容调用标签(方法)</a></li>
              <li><a href="#label-generic-4">2.4 栏目调用标签(方法)</a></li>
              <li><a href="#label-generic-5">2.5 评论调用标签(方法)</a></li>
              <li><a href="#label-generic-6">2.6 会员调用标签(方法)</a></li>
              <li><a href="#label-generic-7">2.7 订单调用标签(方法)</a></li>
              <li><a href="#label-generic-8">2.8 购物车调用标签(方法)</a></li>
              <li><a href="#label-generic-9">2.9 配送方式调用标签(方法)</a></li>
              <li><a href="#label-generic-10">2.10 支付方式调用标签(方法)</a></li>
            </ul>
          </li>
          <li> <a href="#label-page">三、内置页面标签</a>
            <ul class="nav">
              <li><a href="#label-page-1">3.1 频道页面变量与方法</a></li>
              <li><a href="#label-page-2">3.2 类别页面变量与方法</a></li>
              <li><a href="#label-page-3">3.3 会员页面变量与方法</a></li>
            </ul>
          </li>
          <li><a href="#ask-question">四、常规方法说明</a></li>
        </ul>
      </div>
    </div>
  </div>
</div>
<footer class="bs-footer" role="contentinfo">
  <div class="container">
    <ul class="footer-links">
      
    </ul>
  </div>
</footer>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="assets/js/docs.min.js" type="text/javascript"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="assets/js/ie10-viewport-bug-workaround.js" type="text/javascript"></script>
</body>
</html>
